package main

import (
	"fmt"
	"math/rand"
	"time"
)

// START1 OMIT
func main() {
	c := make(chan string)
	go ennuyeux("ennuyeux!", c)
	for i := 0; i < 5; i++ {
		// L'expression de réception est une valeur.
		fmt.Printf("Tu dis: %q\n", <-c) // HL
	}
	fmt.Println("T'es ennuyeux, je m'en vais!")
}

// STOP1 OMIT

// START2 OMIT
func ennuyeux(msg string, c chan string) {
	for i := 0; ; i++ {
		// On peut envoyer n'importe quelle expression du bon type.
		c <- fmt.Sprintf("%s %d", msg, i) // HL
		time.Sleep(time.Duration(rand.Intn(1e3)) * time.Millisecond)
	}
}

// STOP2 OMIT
